package com.zenith.storage.service;

import com.zenith.common.result.PageResult;
import com.zenith.storage.po.dto.FolderDTO;
import com.zenith.storage.po.dto.FolderFileQueryDTO;
import com.zenith.storage.po.dto.MoveFileDTO;
import com.zenith.storage.po.dto.RenameDTO;
import com.zenith.storage.po.vo.FolderFileVO;
import com.zenith.storage.po.vo.FolderVO;

import java.util.List;

/**
 * 网盘功能服务接口
 */
public interface NetDiskService {
    /**
     * 创建文件夹
     * @param folderDTO 文件夹信息
     * @return 文件夹信息
     */
    FolderVO createFolder(FolderDTO folderDTO);

    /**
     * 获取文件夹树
     * @param userId 用户ID
     * @return 文件夹树
     */
    List<FolderVO> getFolderTree(Long userId);

    /**
     * 获取文件夹中的文件列表
     * @param queryDTO 查询条件
     * @return 文件列表
     */
    PageResult<FolderFileVO> getFolderFiles(FolderFileQueryDTO queryDTO);

    /**
     * 移动文件
     * @param moveFileDTO 移动文件信息
     * @return 是否移动成功
     */
    Boolean moveFile(MoveFileDTO moveFileDTO);

    /**
     * 重命名文件或文件夹
     * @param renameDTO 重命名信息
     * @return 是否重命名成功
     */
    Boolean rename(RenameDTO renameDTO);
}